package com.dte.dao;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class DocumentoElectronicoDAO {
	
	public boolean getPDFGuia(long folio){
		String ambiente  = dteboxcliente.Ambiente.Homologacion;
		String rutEmisor = "70335000-3";
		int tipoDTE      = dteboxcliente.TipoDocumento.TIPO_52;
		//long folio = 20;
		System.out.println("VALOR PARA ambiente:"+ambiente);
		String apiURL  = "http://10.10.10.10/api/Core.svc/Core";
		String apiAuth = "6dd62425-c356-41bb-948c-526a85d92b16";;
		    
		dteboxcliente.Servicio servicio = new dteboxcliente.Servicio(apiURL, apiAuth);
		dteboxcliente.ResultadoRecuperarPDF resultado = servicio.ObtenerPDF(ambiente, rutEmisor, tipoDTE, folio);
		    
		// Procesar respuesta
		if (resultado.getResultadoServicio().getEstado() == 0) {
		    //Usar los datos que vienen en el resultado de la llamada
		    byte[] pdf = resultado.getDatos();	
		    String nFolio = String.valueOf(folio);;
		    grabaFilePdfbyte(pdf, nFolio);		    
		} else {
		    
		    //Descripci�n del error, actuar acorde
		    String error = resultado.getResultadoServicio().getDescripcion();
		    System.out.println("error en la requerimiento de la guia:"+ error);
		    
		    return false;
		}
		
		return true;

		
	}
	
	public static void grabaFilePdfbyte(byte[] resByte, String nfolio){
		//FileInputStream fileInputStream=null;
		//String fileName = "C:\\paso\\GuiaDespacho"+ nfolio +".pdf";
		String fileName = "C:\\tomcat\\webapps\\portalLiga2\\pdf\\GuiaDespacho"+ nfolio +".pdf";
		BufferedOutputStream bs = null;
		FileOutputStream fs;
		try {
			fs = new FileOutputStream(new File(fileName));
			bs = new BufferedOutputStream(fs);
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("error 100 generacion del file folio "+nfolio);
		}
		
		try {
			bs.write(resByte);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("error 200 generacion del file folio "+nfolio);
		}
		 
		try {
			bs.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("error 300 generacion del file folio "+nfolio);
		}
		 bs = null;
	   

	}
	
	public static void grabaFilePdfString(String  strFile) throws IOException{
		//FileInputStream fileInputStream=null;
		String fileName = "C:\\paso\\primeraGuia2.pdf";
		
		        
		FileOutputStream fop = null;
		File file;
		//String content = "This is the text content";
 
		try {
 
			file = new File(fileName); //"c:/newfile.txt");
			fop = new FileOutputStream(file);
 
			// if file doesnt exists, then create it
			if (!file.exists()) {
				file.createNewFile();
			}
 
			// get the content in bytes
			byte[] contentInBytes = strFile.getBytes();
 
			fop.write(contentInBytes);
			fop.flush();
			fop.close();
 
			System.out.println("listo el file");
 
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (fop != null) {
					fop.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}
